#include <myheader.h>
#define MMP_SIZE 1024
/*Usage：实现小写转化大写操作，使用mmp 参数：path  */
int main(int argc, char *argv[])
{
    ARGC_CHECK(argc,2);
    //打开文件,可读可写
    int fd = open(argv[1],O_RDWR);
    char *buf = NULL;
    //先获得文件大小，使用stat结构体
    struct stat stat_struct;
    int stat_ret = stat(argv[1],&stat_struct);
    ERROR_CHECK(stat_ret,-1,"stat");
    //获取文件的大小
    off_t size = stat_struct.st_size;
    //打开映射
    buf = (char *)mmap(NULL,(size_t)size,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0);
    ERROR_CHECK(buf,MAP_FAILED,"mmap");
    //识别小写字母
    for(int i = 0; i < size; i++){
        if(islower(buf[i])){
            //转换成大写字母
            buf[i] = toupper(buf[i]);
        }
    }
    int munmp_ret = munmap(buf,(size_t)size);
    ERROR_CHECK(munmp_ret,-1,"munmap");
    int close_file_ret = close(fd);
    ERROR_CHECK(close_file_ret,-1,"closefile");
    printf("Hello world\n");
    return 0;
}

